package com.njwt.cloud.msconsumer.config;

import com.netflix.loadbalancer.RandomRule;
import feign.Logger;
import feign.Retryer;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @author <a href="mailto:xingxiao@gtmap.cn">xingxiaofeng</a>
 * @version2.1 2022-04-11
 * @description
 */
@Configuration
public class BaseConfig {
    
    /**
     * 负载均衡
     * 注册resttemplate
     * @return
     */
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate(){
        return  new RestTemplate();
    }
    /**
     * 配置消费端的负载均衡策略
     */
 /*   @Bean
    public RandomRule randomRule() {
        return new RandomRule();
    }*/

    //	NONE:不记录任何信息，默认值
    //	BASIC:记录请求方法、请求URL、状态码和用时
    //	HEADERS:在BASIC基础上再记录一些常用信息
    //	FULL:记录请求和相应的所有信息
    @Bean
    public Logger.Level getLog(){
        return Logger.Level.FULL;
    }
  /*  @Bean
    public Retryer retryer() {

        //feign默认是通过自己包下的Retryer进行重试配置,默认是5次
        // period=100 发起当前请求的时间间隔，单位毫秒
        // maxPeriod=1000 发起当前请求的最大时间间隔，单位毫秒
        // maxAttempts=5 最多请求次数，包括第一次
        //Retryer neverRetry = new Retryer.Default(100, 1000, 5);
        return new Retryer.Default();
    }*/


}
